
import axios from 'axios';

axios.defaults.timeout = 10000; //设置请求时间
axios.defaults.baseURL = '/api/app/mock/248971';//设置默认接口地址

//http request 封装请求头拦截器
axios.interceptors.request.use(config => {
    // //请求方式
    // let method = config.method.toLowerCase();
    // if (method === 'get' || method === 'delete') {
    //     // Object.assign(config.params, {
    //     //     "test": "testVAl"
    //     // });
    // }
    let token = sessionStorage.getItem("token")
    if (token) {
        //将token放到请求头发送给服务器,将tokenkey放在请求头中
        //config.headers.accessToken = token;
        //也可以这种写法
         config.headers['access_token'] = token;
        return config;
    }

    return config;
}, error => {
    return Promise.reject(err);
});


//http response 封装后台返回拦截器
axios.interceptors.response.use(response => {
    //console.log(response.data)

//当返回信息为未登录或者登录失效的时候重定向为登录页面
    if (response.data.code == '1000' || response.data.message == '用户未登录或登录超时，请登录！') {

    }
    if (typeof response.data === 'string') {
        return JSON.parse(response.data);
    } else {
        return response;
    }
}, error => {
    return Promise.reject(error)
});

/**
 * 封装get方法
 * @param url
 * @param data
 * @returns {Promise}
 */
export function get(url,params={}){
    return new Promise((resolve,reject) => {
        axios.get(url,{
            params:params
        })
            .then(response => {
                resolve(response.data);
            })
            .catch(err => {
                reject(err)
            })
    })
}
/**
 * 封装post请求
 * @param url
 * @param data
 * @returns {Promise}
 */

export function post(url,data = {}){
    return new Promise((resolve,reject) => {
        axios.post(url,data)
            .then(response => {
                resolve(response.data);
            },err => {
                reject(err)
            })
    })
}

/**
 * 封装delete请求
 * @param url
 * @param data
 * @returns {Promise}
 */

export function deletes(url,data = {}){
    return new Promise((resolve,reject) => {
        axios.delete(url,data)
            .then(response => {
                resolve(response.data);
            },err => {
                reject(err)
            })
    })
}


/**
 * 封装put请求
 * @param url
 * @param data
 * @returns {Promise}
 */

export function put(url,data = {}){
    return new Promise((resolve,reject) => {
        axios.put(url,data)
            .then(response => {
                resolve(response.data);
            },err => {
                reject(err)
            })
    })
}

/**
 * 封装pust请求
 * @param url
 * @param data
 * @returns {Promise}
 */

export function pust(url,data = {}){
    return new Promise((resolve,reject) => {
        axios.pust(url,data)
            .then(response => {
                resolve(response.data);
            },err => {
                reject(err)
            })
    })
}



